package com.hd.sup.modules.vehicle.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hd.sup.modules.vehicle.model.VehicleEndPos;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 车辆末次信息表 | 看看pg有没有内存表 服务类
 * </p>
 *
 * @author chentl123
 * @since 2020-12-28
 */
public interface IVehicleEndPosService extends IService<VehicleEndPos> {

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 查询末次信息分页列表
     * @date 2021/2/2 1:20 下午
     * @params [page, vehicleEndPos]
     */
    List<Map<String, Object>> getVehicleEndPosPage(Page<Map<String, Object>> page, VehicleEndPos vehicleEndPos);


    /**
     * @return java.lang.String
     * @author chentl
     * @description 缓存车辆末次信息
     * @date 2021/1/6 9:17 上午
     * @params [bo, cacheData]
     */
//    void cacheVehicleEndPos(VehicleEndPos bo, Object cacheData);

    /**
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @author chentl
     * @description 查询视窗内 所有车辆坐标信息
     * @date 2021/1/8 10:40 上午
     * @params [param]
     */
    List<Map<String, Object>> getVehicleGps(VehicleEndPos param);

    /**
     * @return void
     * @author chentl
     * @description 定时刷新末次信息表
     * @date 2021/1/8 12:37 下午
     * @params [veDto]
     */
    void refreshVehicleEndPos(VehicleEndPos veDto);

    /**
     * @return java.util.List<com.hd.sup.modules.vehicle.model.VehicleEndPos>
     * @author chentl
     * @description 获取所有未同步静态数据的车辆
     * @date 2021/1/13 5:16 下午
     * @params []
     */
    List<VehicleEndPos> getUnCompletionVehicle();

    /**
     * @return void
     * @author chentl
     * @description 同步静态数据
     * @date 2021/1/14 9:11 上午
     * @params [data]
     */
    void syncUnCompletionData(VehicleEndPos data);

    /**
     * @return void
     * @author chentl
     * @description 更新 静态数据类型
     * @date 2021/1/14 12:38 下午
     * @params [platNo, platColor, staticDataStatus,syncRemark]
     */
    void updateStatus(String platNo, String platColor, Integer staticDataStatus, String syncRemark);

}
